다른 고객의 항목을 표시하고 싶습니다. 이 효과를 위해 나는 ajax 호출을 통해 데이터를 가져오고 각 고유 고객을 기반으로 데이터를 그룹화합니다. 그런 다음 그룹화 된 데이터를 내 html에 추가합니다.
내 그룹화 된 데이터의 구조는 다음과 같습니다.
"존 도우": [
{
"Item_id": 1
"Item_name": "abc"
},
{
"Item_id": 2
"Item_name": "def"
},
],
"Jane Doe":
{
"Item_id": 3
"Item_name": "ghi"
},
{
"Item_id": 4
"Item_name": "jkl"
},
]
내 코드는 다음과 같습니다.
$ .each (groupedData, function (key, value) {
$ ( '. cust_items'). append (`
`+ 키 +` h4>
항목 번호 th>
| 항목 이름 th>
thead>
| tbody>
table>
`);
$ .each (value, function (ky, val) {
$ ( '# dataTable tbody'). append (
`
`+ ky +`
td>
|
`+ val.Item_name +`
td>
tr>
`);
});
});
첫 번째 고객에게는 모든 항목이 표시되고 두 번째 고객에게는 데이터가 올바르게 표시되는 문제가 있습니다.
속성 뒤에 쉼표가 누락되었으며 Jane Doe 속성의 개체는 []로 묶여 있지 않습니다. 구문이 올바르지 않으므로 groupedData 개체를 변경하는 것이 좋습니다.
편집 : 또한 템플릿 문자열을 조정하고 동적 ID로 테이블에 액세스합니다.
견본:
let groupedData = {
"존 도우": [{
"Item_id": 1,
"Item_name": "abc"
},
{
"Item_id": 2,
"Item_name": "def"
}
],
"Jane Doe": [{
"Item_id": 3,
"Item_name": "ghi"
},
{
"Item_id": 4,
"Item_name": "jkl"
}
]
};
$ .each (groupedData, function (key, value) {
$ ( '. cust_items'). append (`
$ {key} h4>
항목 번호 th>
| 항목 이름 th>
thead>
| tbody>
table>
`);
$ .each (value, function (ky, val) {
$ (`#dataTable _ $ {key.split ( '') .join ( '_')} tbody`) .append (
`
$ {ky}
td>
|
$ {val.Item_name}
td>
tr>
`);
});
});
-->
| |